This invention relates generally to estimation of level-thresholds for memory cells. Methods and apparatus are provided for determining thresholds between successive cell levels on readout of q-level memory cells, together with data storage devices incorporating such apparatus.
In solid-state memory such as flash memory and phase-change memory, the fundamental storage unit (the “cell”) can be set to q different states, or “levels”, permitting storage of information. Each cell can be used to store a qary symbol with each of the q possible symbol values being represented by a different cell level. In so-called “single-level cell” (SLC) devices, the memory cells can be set to only two levels (q=2) and so can record only binary values. Other devices use so-called “multi-level cells” which can be set to q>2 different cell levels, thus permitting storage of more than one bit per cell.
Detection of data stored in q-level memory cells relies on identifying the different cell levels on readback. In flash and phase change memory (PCM), for example, the different cell levels exhibit different electrical charge and electrical resistance characteristics respectively, and these can be detected via current or voltage measurements on the cells. On readout of cells, the read signal level can be compared with a set of reference signal levels indicative of the q cell levels in order to determine which level each cell is set to and thus detect the stored symbol value. A basic problem here is that the physical quantity measured during cell readout is subject to variability, e.g. due to noise and/or drift in measured values with time or cell usage. Multiple read operations on cells set to any given cell level will therefore yield a distribution of read signal levels.
Accuracy of the reference signal levels used for data detection is crucial to readback performance. Reference signal levels can be expressed as “level-thresholds” for the q cell levels. For each pair of successive memory cell levels, the level-threshold indicates a read signal level defining the threshold, or boundary, between read signal level distributions corresponding to the two cell levels. The reference signal levels for detection of q-level cells can therefore be expressed as q−1 level-thresholds.
A conventional technique for reference level estimation uses training data derived from a pool of reference memory cells. Known information is written to the reference cells each time a block of user data is written to memory. The reference cells are read whenever the user file is read, and the reference cell readings are used to derive estimates for the reference signal levels. The reference cell approach has various disadvantages, including overhead due to use of memory area for reference purposes, and varying effectiveness due to inherent variability between cells in a memory array.
More sophisticated techniques for reference level estimation are self-adaptive, using the readback signals from cells storing actual user data to estimate the reference levels used for detection of data in those cells. Self-adaptive techniques for reference level estimation are described in our US patent Application publication no. US 2013/0227380 A1 and our UK Patent Application no. 1307788.8, filed 30 Apr. 2013. These applications disclose systems for read-detection of length-N, qary-symbol codes in MLC memory. Each symbol of an N-symbol codeword is recorded in a respective q-level cell by setting the cell to a level dependent on the qary symbol value. Memory cells are read in blocks to obtain read signals corresponding to a group of codewords. Each read signal has N read signal components corresponding to respective symbols of a codeword. The read signal components of the entire group of read signals are ordered according to signal value. The resulting ordered component sequence is then partitioned to obtain a plurality of segments each corresponding to a different memory cell level. The size (i.e. number of components) of each of these segments is determined based on predetermined frequency data indicative of expected frequency of occurrence of the corresponding level in use of the code. The resulting read signal level distributions corresponding to respective memory cell levels are then further processed to derive statistical data for use in the codeword detection process.
Another self-adaptive technique for estimating level-thresholds is described in our UK Patent Application no. 1317081.6, filed 26 Sep. 2013. The read signal components obtained by reading a block of q-level memory cells are processed in dependence on signal level to produce a signal level vector. This vector comprises a series of elements and indicates the distribution of read signal components in order of signal level. For example, the signal level vector can be produced by ordering the read signal components according to signal level, or by binning the components according to signal level. A sliding-window scan is performed on the signal level vector, and a metric, dependent on the elements of the signal level vector in the window, is calculated at each window position. The level-thresholds for the q cell levels are then determined based on variation of this metric over the scan. This technique performs well even in the presence of data asymmetry, i.e. where there is a significant difference in the numbers of cells set to the q different cell levels.
The foregoing self-adaptive techniques are a major advance on the reference cell approach, offering much-improved performance. As readback block sizes decrease, however, it becomes more difficult to meet the performance specifications for memory devices. In PCM devices, for example, in order to achieve the required bit error rates for specified data retention times, read detectors using current self-adaptive level-estimation systems require block sizes of at least 256 bits. This corresponds to 128 (q=4)-level cells. However, current PCM applications require block sizes of 64 bits or 128 bits, i.e. 32 or 64 4ary cells respectively, and further reduction in block size can be envisaged. In view of the above, improved techniques for determining level-thresholds would be desirable.